The present invention relates in general to a file system in a communication network, and more particularly, to the use of uniform resource locators to access the file system in the communication network.
Various file systems are currently implemented for data processing systems in a variety of networks. Most users are familiar with a methodology for accessing a file in a file system implemented on their personal computer (PC). When accessing that file, the user opens the file, reads or writes from the file, and then closes the file. To open the file to communicate information thereto, the user must first specify the name of the file. Generally, for personal computers, the file name is specified in a file system open call where one of the arguments is the name of the file in the form of a character string:
a: pathname filename
In the call provided above, the xe2x80x9caxe2x80x9d indicates a drive in which the file is located. The xe2x80x9cpathnamexe2x80x9d indicates a name of a folder or directory in which the file is located and the xe2x80x9cfilenamexe2x80x9d is a name of the file itself.
When a central processing unit (CPU) in a PC receives such a name, the central processing unit first accesses the drive, and locates a folder directory specified by the pathname. Subsequently, the CPU searches the folder or directory for the file corresponding to the filename specified in the user""s call.
When a programmer desires to use a file or device, the programmer passes the name of that file or device as a parameter to an xe2x80x9copenxe2x80x9d call along with possible other parameters. The other parameters may, for example, indicate what kind of sharing may be permissible. Files, in general, are specified using xe2x80x9cpath namesxe2x80x9d. For example, an open call with the name:
a: dir1 dir2 filename.ext,
specifies that the file is on drive xe2x80x9ca,xe2x80x9d with the filename being xe2x80x9cfilename.extxe2x80x9d in directory xe2x80x9cdir2,xe2x80x9d in directory xe2x80x9cdir1,xe2x80x9d of the root of drive xe2x80x9caxe2x80x9d. Devices often use reserved file names such as: LPT1 for Printer 1; COM1 for Serial Communications Port 1; and CON for the console keyboard and display, among others.
The xe2x80x9copenxe2x80x9d call locates the file on the hard drive or other device and creates a data structure in memory, usually called a xe2x80x9cfile control blockxe2x80x9d which contains detailed information about the physical location of the file or device specified, as well as information such as the current position in the file when the file is being read sequentially.
The operating system returns a xe2x80x9chandlexe2x80x9d from the open call and the handle is then used to locate the file control block for use on future xe2x80x9ccalls.xe2x80x9d These future calls include reading/writing from/to the file or device. For example a xe2x80x9creadxe2x80x9d call would typically have four parameters: a handle, a location of data buffer into which to place the read data, the size of this buffer, and a place to store the amount of data actually written into the data buffer. Similarly, a xe2x80x9cwritexe2x80x9d call would typically have the following four parameters: a handle, the location of the data buffer containing the data to be written, the number of bytes to be written, and a place to store the amount of data actually written (in case not all of the requested bytes to be written are written because the media is full). Additionally, there may be several other related calls such as those for setting the position of the next read or write operation in the file specified by the handle, and perhaps some special xe2x80x9ccallsxe2x80x9d set forth when additional functions may be possible for a given file or device. Such special calls may include ejecting a CD or rewinding a tape.
Finally, when the program has finished using the file or device specified by the handle, a xe2x80x9cclosexe2x80x9d call is made to deallocate the file control block and any other operating system buffers that may have been allocated to process the input/output activity for the file.
As users became more comfortable with personal computers and with the techniques used to access data therein, including the previously described file access techniques, use of personal computers became increasingly common place. Today, a worldwide network of computers exists to allow users on different personal computers to communicate with one another. Indeed, the worldwide network of computers, commonly known as the xe2x80x9cInternet,xe2x80x9d has seen explosive growth in the last several years. This growth has been typically fueled by the introduction and widespread use of xe2x80x9cwebxe2x80x9d browsers that allow for simple graphical user interface-based access to network servers. Such network servers typically support documents formatted as xe2x80x9cweb pages.xe2x80x9d The xe2x80x9cWorld Wide Webxe2x80x9d (www) is a collection of servers on the Internet that utilize the Hypertext Transfer Protocol (HTTP), a known application protocol that provides users access to files using a standard page description language referred to as HyperText Markup Language (HTML). It should be noted that files may be provided in different formats such as text, graphics, images, sound, and video, among others. HTML provides basic document formatting and allows a developer to specify xe2x80x9clinksxe2x80x9d to other servers and files. Use of an HTML-compliant client browser involves specification of a link via a Uniform Resource Locator, commonly known by the acronym, xe2x80x9cURL.xe2x80x9d Upon specification of a URL, a client may make a TCP/IP (Transmission Control Protocol/Internet Protocol) request to the server identified in the link and receive a xe2x80x9cweb pagexe2x80x9d in return, where the xe2x80x9cweb pagexe2x80x9d is a document formatted according to HTML.
It should be noted that the Internet typically includes a large network of web sites that are accessible by clients, wherein the client is typically a user and his personal computer. Clients may access the Internet through a private Internet access provider, an on-line service provider, or a personal access or service provider. It should be noted that such access providers and service providers will hereinafter be collectively referred to as xe2x80x9cweb servers.xe2x80x9d Additionally, it should be noted that web servers may also be found at web sites. Each site selectively operates a xe2x80x9cweb sitexe2x80x9d that supports files in the form of documents or pages.
A network path to a server is identified by a URL having a known syntax for defining a network connection. This URL typically has the form of:
http://domain name/directory path/filename.
It should be noted that xe2x80x9chttpxe2x80x9d identifies a type of Internet protocol used for storage and transmission of information. Alternatives to an HTTP format include Gopher, Telnet, FTP (File Transfer Protocol), and Usenet News. Furthermore, it should be noted that a URL occasionally includes a port number that is placed directly after the domain name. Such URLs provide a consistent, easily understood method of addressing different files of data at Internet or World Wide Web sites.
When the client receives an URL having one of the aforementioned forms, a central processing unit within the client must open a connection to the server using the TCP/IP protocol. A first step in opening this communication requires the central processing unit to open a xe2x80x9csocket.xe2x80x9d Sockets (aka Berkeley Sockets, or Winsock) is an application programming interface (API) commonly used to access the Internet. Generally, to xe2x80x9copen a socketxe2x80x9d the next three steps are taken. A socket is first allocated. Next, a socket is xe2x80x9cboundxe2x80x9d to a local address that identifies the client. The socket is then xe2x80x9cconnectedxe2x80x9d to a remote host, usually a server. Data is xe2x80x9creceivedxe2x80x9d and xe2x80x9csentxe2x80x9d (using receive and send calls) between the client and host as needed according to HTTP, FTP . . . or another communication protocol. The communication protocol establishes the format of the request data that is sent to the server and the format of returned data. Finally, a socket is xe2x80x9cclosedxe2x80x9d.
API""s other than xe2x80x9csocketsxe2x80x9d are available for accessing the Internet such as TLI, XTI and others at various levels in a communication stack of software. However, regardless of the communication protocol used, the basic principles remain the same and may be used to implement alternate embodiments of the present invention.
In one example, if a URL is specified such as:
http://www.company.com/index.html
is to accessed, the HTTP protocol will be used. xe2x80x9cwww.company.comxe2x80x9d is resolved into a 32 bit Internet Protcol (IP) address. Since no explicit port number is specified, the default for http, xe2x80x9c80,xe2x80x9d is used. A socket is then opened to connect this IP address using port 80. Next, a formatted request is sent to the server asking for file xe2x80x9c/index.htmlxe2x80x9d. If such a file exists at the server and is permitted to be sent to the client, the file is sent and is preceded by formatted header information set forth in the HTTP protocol (RFC1945).
Thus, the use of a URL to access the data from a web site corresponds to the use of the xe2x80x9ca: pathname filenamexe2x80x9d convention for accessing a file within a personal computer. However, the use of Internet files or content in a personal computer application requires that the programmer understand and implement all of the Internet protocols that may be referenced by a URL. Thus, when a developer is programming a personal computer to execute both Internet and Intranet applications, the programmer must ensure that many Internet interfaces are utilized in order to facilitate the access of information over the Internet, as well as files available via the Intranet.
Therefore, a need exists for a data processing system and method that does not require the use of such different interfaces to access applications via the Internet and via a local Intranet.
The previously mentioned needs are fulfilled with the present invention. Accordingly, there is provided, in a first form, a computer program product in the computer-readable medium for implementing an operating system on a local data processing system. The computer program product includes an input device for receiving a command to access a first file and a device for evaluating the command to determine a first file type of the first file. The computer program product also includes a device for retrieving the first file from a remote data processing system when the first file type indicates the first file is stored outside the local data processing system.
Additionally, there is provided, in a second form, a data processing system. The data processing system includes a communication interface for selectively enabling the data processing system to communicate with a remote data processing system and a local memory. The data processing system also includes an input device for receiving a command to access a first file and a central processing unit for executing an operating system. The operating system evaluates the command to determine when the first file is stored in the local memory and when the first file is stored in the remote data processing system.
Furthermore, there is a provided, in the third form, a method for implementing an operating system on a local data processing system. The method includes the step of receiving a command to access a first file and evaluating the command to determine a first type of the first file. The method also includes the step of retrieving the first file from a remote data processing system when the first file type indicates the first file is stored outside the local data processing system.
These and other features, and advantages, will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings. It is important to note the drawings are not intended to represent the only form of the invention.